package com.h3c.nem.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import java.util.ArrayList;
import java.util.List;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: SdDeptDTO
 *
 * @Author: l22886
 * @Date: 2022-01-19
 * Description: sd_dept dto实体
 * Version: 1.0
 */
@ApiModel(value="SdDept对象", description="")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SdDeptDTO {


    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "部门等级")
    private Integer deptLevel;

    @ApiModelProperty(value = "上级部门id")
    private Integer parentId;

    @ApiModelProperty(value = "bp用户工号")
    private String bpUserId;

    @ApiModelProperty(value = "bp用户名称")
    private String bpUserName;

    @ApiModelProperty(value = "部门状态")
    private Boolean deptStatus;

    @ApiModelProperty(value = "全链路部门名称")
    private String deptNameChain;

    @ApiModelProperty(value = "全链路部门编码")
    private String deptCodeChain;

    @ApiModelProperty(value = "部门接口人工号")
    private String contactorId;

    @ApiModelProperty(value = "部门接口人名称")
    private String contactorName;

    @ApiModelProperty(value = "部门主管工号")
    private String deptManagerId;

    @ApiModelProperty(value = "部门主管名称")
    private String deptManagerName;

    @ApiModelProperty(value = "一级部门简称")
    private String shortName;

    @ApiModelProperty(value = "干部部长工号")
    private String gbbzId;

    @ApiModelProperty(value = "干部部长名称")
    private String gbbzName;

    private String offerDeptManagerId;

    private String offerDeptManagerName;


    /**
     * 排序字段 + 升序， -降序
     * 比如 +updateTime 根据 修改时间升序排序，-updateTime 根据 修改时间降序排序
     */
    private String orderBy;

    private String gbbzInfo;

    private String levelOneLeaderId;

    private String levelOneLeaderName;

    private String levelOneLeaderInfo;


    /**
     * 子类
     */
    private List<SdDeptDTO> childrenList = new ArrayList<>();

    public SdDeptDTO(String deptId, String deptName, String parentId) {
    }

    private String key;

    private String value;

    private Boolean hasChildren;

    //人员设置模式:1:覆盖原有人员；2：在原有人员上追加
    private Integer personSetMode;

    //部门设置模式：1：只设置当前部门；2：本部门及所有子部门
    private Integer deptSetMode;

    //设置的人员角色:1:干部部接口人（BP）；2：干部部长（gbbz）；3：一级主管（levelOneLeader）
    private Integer userRole;

    //设置的人员
    private String users;

    private Integer dept1id;

    private Integer dept2id;

    private Integer dept3id;

    private Integer dept4id;

    private String dept1name;

    private String dept2name;

    private String dept3name;

    private String dept4name;

    private String cityContactor;

    private Integer isCoverOldWorkerDept; //1是2否

    private String dept1BpOne;//一级部门真正的第一个Bp

}
